In recent years, virtualization of computer systems has seen rapid growth, particularly in server deployments and data centers. Under a conventional approach, a server runs a single instance of an operating system directly on physical hardware resources, such as the CPU, RAM, storage devices (e.g., hard disk), network controllers, I/O ports, etc. Under a virtualized approach, the physical hardware resources are employed to support corresponding virtual resources, such that multiple Virtual Machines (VMs) may run on the server's physical hardware resources, wherein each virtual machine includes its own CPU allocation, memory allocation, storage devices, network controllers, I/O ports etc. Multiple instances of the same or different operating systems then run on the multiple VMs. Moreover, through use of a virtual machine manager (VMM) or “hypervisor,” the virtual resources can be dynamically allocated while the server is running, enabling VM instances to be added, shut down, or repurposed without requiring the server to be shut down. This provides greater flexibility for server utilization, and better use of server processing resources, especially for multi-core processors and/or multi-processor servers.
An important aspect of server architectures is design for enhanced reliability, availability, and serviceability (RAS). RAS servers are targeted to environments such as server farms and data centers requiring RAS features. In order to support these features, both the RAS server hardware and software are designed to support redundancies and automatic failure in response to detection of system faults. This includes support for redundant physical ports.
As discussed above, virtualization increases server flexibility and utilization. In order to maximize both, deployments will often utilize most or all of the available physical ports, whether these ports are architected as primary ports or standby ports (utilized to support failover in the event of a primary port failure). The aggregation and fail-over usage of these physical ports becomes more complicated when virtualization is employed, since the virtualized ports are mapped to physical ports by the virtualization software. In further detail, under a typical virtualization implementation, the virtualization software comprises a thin layer between the platform physical hardware and the operating system(s) running on the virtual machine(s). Thus, if a physical resource becomes unavailable, corresponding virtual services implemented via that physical resource may likewise become unavailable.